MirrorShard: Proof by Computational Reflection with Verified Hints
نویسندگان
چکیده
We describe a method for building composable and extensible verification procedures within the Coq proof assistant. Unlike traditional methods that rely on run-time generation and checking of proofs, we use verified-correct procedures with Coq soundness proofs. Though they are internalized in Coq’s logic, our provers support sound extension by users with hints over new domains, enabling automated reasoning about user-defined abstract predicates. We maintain soundness by developing an architecture for modular packaging, construction, and composition of hint databases, which had previously only been implemented in Coq at the level of its dynamically typed, proof-generating tactic language. Our provers also include rich handling of unification variables, enabling integration with other tactic-based deduction steps within Coq. We have implemented our techniques in MirrorShard, an open-source framework for reflective verification. We demonstrate its applicability by instantiating it to separation logic in order to reason about imperative program verification.
منابع مشابه
Compositional and Customizable Reflective Proofs
Recent years have seen a proliferation of logics, from simple type systems to higher-order program logics dealing with all the intricacies of machine code or concurrency. While developing new logics requires deep technical insight, evaluating their usefulness on real-world programs is a much more Herculean task, since existing automation techniques often do not support the rich features of new ...
متن کاملAn introduction to small scale reflection in Coq
Small-scale reflection is a formal proof methodology based on the pervasive use of computation with symbolic representations. Symbolic representations are usually hidden in traditional computational reflection (e.g., as used in the Coq[The10] ring, or romega): they are generated on-the-fly by some heuristic algorithm and directly fed to some decision or simplification procedure whose output is ...
متن کاملLightweight Proof by Reflection Using a Posteriori Simulation of Effectful Computation
Proof-by-reflection is a well-established technique that employs decision procedures to reduce the size of proof-terms. Currently, decision procedures can be written either in Type Theory—in a purely functional way that also ensures termination— or in an effectful programming language, where they are used as oracles for the certified checker. The first option offers strong correctness guarantee...
متن کاملMechanically Verified Calculational Abstract Interpretation
Calculational abstract interpretation, long advocated by Cousot, is a technique for deriving correct-by-construction abstract interpreters from the formal semantics of programming languages. This paper addresses the problem of deriving correct-by-verifiedconstruction abstract interpreters with the use of a proof assistant. We identify several technical challenges to overcome with the aim of sup...
متن کاملA Certified Verifier for a Fragment of Separation Logic
Separation logic is an extension of Hoare logic that is convenient to verify imperative programs with pointers and mutable data-structures. Although there exist several implementations of verifiers for separation logic, none of them has actually been itself verified. In this paper, we propose a verifier for a fragment of separation logic that is verified inside the Coq proof assistant. This ver...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1305.6543 شماره
صفحات -
تاریخ انتشار 2013